package com.zf.yichat.api.controller.mission;

import com.zf.yichat.api.controller.BaseController;
import com.zf.yichat.api.dto.request.*;
import com.zf.yichat.model.Mission;
import com.zf.yichat.model.SysDict;
import com.zf.yichat.service.MissionService;
import com.zf.yichat.service.SysDictService;
import com.zf.yichat.utils.YiChatMsgCode;
import com.zf.yichat.utils.response.FsPage;
import com.zf.yichat.utils.response.FsResponse;
import com.zf.yichat.utils.response.FsResponseGen;
import com.zf.yichat.vo.DictKey;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.Optional;

/**
 * 一句话描述功能
 *
 * @author fengsong
 * @date create in 10:24 2020/3/16 2020
 */
@RestController
@RequestMapping("mission")
public class MissionController extends BaseController {

    @Autowired
    private MissionService missionService;

    @Autowired
    private SysDictService sysDictService;
//
//    /**
//     * 佣金比率
//     */
//    @PostMapping("commission")
//    public FsResponse commissionRate(@RequestBody MissionCommissionRequest params) {
//
//        //配置的佣金比率
//        SysDict dict = sysDictService.selectOne(DictKey.mission_commission);
//        BigDecimal commission = Optional.ofNullable(dict).map(v -> new BigDecimal(v.getValue())).orElse(BigDecimal.ZERO);
//        return FsResponseGen.successData(commission.multiply(params.getMoney()));
//
//    }
//
//
////    /**
////     * 任务发布
////     */
////    @PostMapping("publish")
////    public FsResponse upload(@RequestBody MissionSaveRequest params) {
////        params.valid();
////
////        return missionService.save(params.getMissionId(), params.getTitle(), params.getMemo(), params.getMainPic(), params.getImgs(), params.getCheckType(), params.getNum(), params.getPrice(), getUserId());
////
////    }
//
//    /**
//     * 任务列表
//     */
//    @PostMapping("list")
//    public FsResponse list(@RequestBody FsPage page) {
//        return missionService.selectList(page.getPageNo(), page.getPageSize(),getUserId());
//    }
//
//    /**
//     * 我的任务列表
//     */
//    @PostMapping("my/list")
//    public FsResponse myList(@RequestBody FsPage page) {
//        return missionService.selectMyList(page.getPageNo(), page.getPageSize(), getUserId());
//    }
//
//
//    /**
//     * 我的领取任务列表
//     */
//    @PostMapping("my/receive/list")
//    public FsResponse myReceiveList(@RequestBody FsPage page) {
//        return missionService.selectMyReceiveList(page.getPageNo(), page.getPageSize(), getUserId());
//    }
//
//
//    /**
//     * code码批量生成
//     */
//    @PostMapping("code/generate")
//    public FsResponse generate() {
//
//        missionService.generateMissCode(8);
//        return FsResponseGen.success();
//
//    }
//
//
//    /**
//     * 领取任务
//     */
//    @PostMapping("receive")
//    public FsResponse receive(@RequestBody MissionCancleRequest params) {
//
//        return missionService.receive(params.getMissionId(), getUserId());
//
//    }
//
//    /**
//     * 提交完成任务
//     */
//    @PostMapping("submit")
//    public FsResponse submit(@RequestBody MissionSubmitRequest params) {
//
//        return missionService.submit(params.getMissionId(), params.getImgs(), params.getMemo(), getUserId());
//
//    }
//
//
//    /**
//     * 任务详情
//     */
//    @PostMapping("detail")
//    public FsResponse detail(@RequestBody MissionCancleRequest params) {
//        params.valid();
//        return FsResponseGen.successData(missionService.detailMission(params.getMissionId(), getUserId()));
//    }
//
//    /**
//     * 终止我的任务
//     */
//    @PostMapping("cancle")
//    public FsResponse cancle(@RequestBody MissionCancleRequest params) {
//
//        params.valid();
//        //校验下是否属于当前
//        Mission mission = missionService.selectById(params.getMissionId());
//        if (mission.getUserId().compareTo(getUserId()) != 0) {
//            return FsResponseGen.success(YiChatMsgCode.MISSION_NONE_AUTH);
//        }
//
//        missionService.cancle(params.getMissionId());
//
//        return FsResponseGen.success();
//    }
//
//    /**
//     * 我的任务审核
//     */
//    @PostMapping("my/check/list")
//    public FsResponse checkList(@RequestBody MissionCheckListRequest params) {
//
//        params.valid();
//        FsPage page = FsPage.init(params.getPageNo(), params.getPageSize());
//        return missionService.selectCheckList(page.getPageNo(), page.getPageSize(), params.getType(), params.getMissionId(), getUserId());
//    }
//
//    /**
//     * 审核任务
//     */
//    @PostMapping("check")
//    public FsResponse check(@RequestBody MissionCheckRequest params) {
//
//        params.valid();
//        return missionService.check(params.getUserMissionId(), params.getType(), params.getReason(), getUserId());
//    }
//
//
//    /**
//     * 佣金比率
//     */
//    @PostMapping("check/notify")
//    public FsResponse checkNotify(@RequestBody MissionCheckNotifyRequest params) {
//
//        if (StringUtils.isBlank(params.getMissionCode())) {
//            return FsResponseGen.success(YiChatMsgCode.SYSTEM_PARAM_ERROR);
//        }
//        return missionService.checkNotify(params.getMissionCode());
//
//    }
//
//    /**
//     * 投诉
//     */
//    @PostMapping("complain")
//    public FsResponse complain(@RequestBody MissionCancleRequest params) {
//
//        params.valid();
//        return missionService.complain(params.getMissionId(), getUserId());
//
//    }


}
